[실기] 정보처리기사 핵심요약 노트
NOTE
정보처리기사 실기 전 단원 핵심 요약(단원별 주요 개념 압축 정리).
📌 개념
1단원: 소프트웨어 생명주기 및 요구사항 분석
소프트웨어 생명주기 (SDLC) 모델
- 폭포수 (Waterfall): 고전적, 단계별 순차 진행.
- 프로토타입 (Prototyping): 시제품을 만들어 사용자 피드백 반영.
- 나선형 (Spiral): 위험 분석 중심, 반복적 수행.
- 애자일 (Agile): 사람 중심, 변화에 유연, 빠른 개발 (XP, SCRUM).
객체지향 기법
- 캡슐화 (Encapsulation): 데이터와 연산을 하나로 묶음, 정보 은닉(Information Hiding) 유도.
- 다형성 (Polymorphism): 오버로딩(중복정의), 오버라이딩(재정의).
- 상속성 (Inheritance): 상위 클래스 속성 물려받음.
객체지향 분석 방법론 (럼바우)
- 객체 (Object) 모델링: 정보 모델, ER 다이어그램 (객체 다이어그램).
- 동적 (Dynamic) 모델링: 시간/상태 변화, 상태 다이어그램.
- 기능 (Functional) 모델링: 자료 흐름, DFD (자료 흐름도).
비용 산정 모델
- 하향식: 델파이 기법 (전문가 합의).
- 상향식: LOC (원시 코드 라인 수), Man Month (월별 인력 투입).
- 계산 시 제시된 모든 숫자(기간, 인원 등) 사용.
- COCOMO (Bohem): 규모에 따른 분류.
- Organic: 5만 라인 이하 (조직 내부).
- Semi-detached: 30만 라인 이하 (반 분리형).
- Embedded: 30만 라인 이상 (초대형, 미사일 등).
- FP (Function Point): 기능 점수 중심.
일정 관리
- CPM (주공정법): 임계 경로(가장 오래 걸리는 경로) 계산.
- PERT: 3점 추정 (비관치, 중간치, 낙관치) 이용.
- CCPM: 자원 제약 고려, 연쇄 관리.
디자인 패턴 (GoF)
- 생성 (Creational): Factory Method, Abstract Factory, Builder, Prototype, Singleton.
- 구조 (Structural): Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy.
- 행위 (Behavioral): Observer(상태 변화 시 자동 알림), Template Method, Command, Iterator, Mediator, Memento, State, Strategy, Visitor, Chain of Responsibility, Interpreter.
요구사항 분석
- 유형: 기능(무엇을 하는가), 비기능(성능, 보안, 품질 등).
- 프로세스: 도분명확 (도출 → 분석 → 명세 → 확인/검증).
- 도출 기법: 브레인스토밍(자유 발언), 롤플레잉, 워크숍, 델파이.
- 검증 기법:
- 동료 검토 (Peer Review): 2~3명이 진행.
- 워크스루 (Walkthrough): 회의 전 자료 배포, 비형식적.
- 인스펙션 (Inspection): 저작자 외 전문가 팀, 형식적.
- 명세 기법: 정형(수학적, 모델링), 비정형(자연어).
2단원: 화면 설계 (UI & UML)
UI (User Interface)
- 유형: CLI(텍스트), GUI(그래픽), NUI(신체/직관), OUI(유기적/모든 사물).
- 설계 원칙: 직유학유
- 직관성 (누구나 쉽게 이해)
- 유효성 (목표 달성)
- 학습성 (쉽게 배움)
- 유연성 (요구사항 수용)
- 설계 기법: 3C 분석, SWOT, 시나리오 플래닝, 사용성 테스트, 스토리보드(UI 설계 산출물).
UML (Unified Modeling Language)
- 구조적 (Structural) 다이어그램: 정적 구조.
- 클래스: 속성, 메서드, 접근제어자(+, -, #).
- 객체: 특정 시점의 인스턴스 관계.
- 컴포넌트: 물리적 코드 컴포넌트 구조.
- 배치 (Deployment): HW/SW 물리적 위치.
- 패키지: 요소 그룹화.
- 복합체 구조: 내부 구조 표현.
- 행위적 (Behavioral) 다이어그램: 동적 흐름.
- 유스케이스: 사용자 관점 기능.
- 시퀀스: 시간 순서에 따른 메시지 흐름.
- 커뮤니케이션: 객체 간 메시지 연관 관계.
- 상태: 객체의 상태 변화.
- 활동: 로직/기능의 처리 흐름.
- 타이밍: 시간 제약.
UML class diagram relationships 이미지
Getty Images
탐색
- 클래스 관계 (암기 필수):
- 연관 (Association): 실선. (소유 X, 참조) ex) 축구선수-팀.
- 의존 (Dependency): 점선 화살표. (잠깐 사용) ex) 교수-수업.
- 일반화 (Generalization): 실선+비어있는 세모. (상속, is-a) ex) 차-버스.
- 실체화 (Realization): 점선+비어있는 세모. (인터페이스 구현)
- 집합 (Aggregation): 빈 마름모. (독립적 부분) ex) 컴퓨터-모니터.
- 포함 (Composition): 채워진 마름모. (생명주기 함께함, 강함) ex) 차-엔진.
UML 관계 팁:
- 점선: 포함 (
<<include>>- 필수), 실선: 확장 (<<extend>>- 선택)
3단원: 데이터 모델링 및 구축
데이터 모델링 절차
- 개념 (E-R) → 논리 (정규화, 스키마) → 물리 (반정규화, 테이블).
논리 데이터 모델
- 관계형 (Relational): 테이블 구조.
- 관계 대수 (절차적): Select, Project, Join, Division.
- 관계 해석 (비절차적): 원하는 데이터만 명시.
- 계층형: 트리 구조.
- 네트워크형: 그래프 구조.
정규화 (Normalization)
- 목적: 중복 제거, 이상 현상(삽입, 삭제, 갱신) 방지.
- 단계 (암기): 도부이결다조
- 도메인 원자성 (1NF)
- 부분 함수 종속 제거 (2NF)
- 이행 함수 종속 제거 (3NF)
- 결정자이면서 후보키가 아닌 것 제거 (BCNF)
- 다치 종속 제거 (4NF)
- 조인 종속 제거 (5NF)
무결성 (Integrity)
- 개체 무결성: 기본키는 Null 불가, 중복 불가.
- 참조 무결성: 외래키는 참조하는 테이블의 기본키와 같거나 Null이어야 함.
- 도메인(속성) 무결성: 속성 값의 범위 준수.
- 키 종류: 슈퍼키(유일성O, 최소성X), 후보키(최소성O), 기본키(PK), 대체키, 외래키(FK).
데이터베이스 관리
- 파티셔닝: 레인지(범위), 해시(함수), 리스트(특정 값), 컴포지트(결합), 라운드로빈.
- NoSQL: 스키마 X, Join 불가, 수평 확장 용이.
- 데이터 마이닝: 대량 데이터에서 패턴/규칙 발견.
4단원: 통합 구현 (연계)
연계 방식
- 직접 연계: DB Link, JDBC, API, Connection Pool(미리 연결 생성), Hyperlink.
- 간접 연계: EAI, ESB, Socket.
EAI (Enterprise Application Integration)
- 유형:
- Point-to-Point: 1:1 연결.
- Hub & Spoke: 중앙 허브 경유.
- Message Bus: 미들웨어(버스) 사용.
- Hybrid: Hub & Spoke + Message Bus.
ESB (Enterprise Service Bus)
- 느슨한 결합, 서비스 지향, 버스 형태.
- 핵심 기술: SOAP (XML 프로토콜), WSDL (서비스 명세), UDDI (저장소).
IPC (Inter-Process Communication)
- 프로세스 간 통신. (메시지 큐, 공유 메모리, 소켓, 세마포어).
5단원: 인터페이스 구현 및 보안
인터페이스 기술
- JSON: Key-Value 쌍, 경량.
- XML: 마크업 언어, HTML 단점 보완.
- AJAX: JS 이용 비동기 통신 (XMLHttpRequest).
- REST: 자원(URI) + 행위(HTTP Method).
- POST (Create), GET (Read), PUT (Update), DELETE (Delete).
보안 기술
- DB 암호화:
- API: 애플리케이션 레벨.
- Plug-in: DB 서버 내 모듈 설치.
- TDE: DBMS 커널 내장 (투명 암호화).
- Hybrid: API + Plug-in.
- 전송 암호화: IPSec (네트워크 계층), SSL/TLS (전송 계층), S-HTTP.
테스트 도구
- 단위 테스트: xUnit(다양한 언어).
- 서비스 테스트: STAF(재사용), FitNesse(웹 기반), NTAF(STAF+FitNesse).
- 웹 자동화: Selenium(스크립트), Watir(루비).
- 모니터링(APM): Scouter, Jennifer.
8단원: 서버 프로그램 및 형상 관리
형상 관리 (SCM)
- 도구:
- CVS: 파일 단위, 동시 변경 가능.
- SVN: CVS 개선, 커밋 실패 시 롤백.
- Git: 분산 버전 관리. (언급 없어도 중요)
- 재공학 (Re-engineering): 기존 시스템 개선/재활용.
- 재개발: 새로 개발.
모듈 품질 (중요)
- 응집도 (높을수록 좋음): 우논시절통순기 (우연 < 논리 < 시간 < 절차 < 통신 < 순차 < 기능).
- 결합도 (낮을수록 좋음): 내공외제스자 (내용 > 공통 > 외부 > 제어 > 스탬프 > 자료).
- 내용(Content): 내부 로직 직접 참조 (최악).
- 공통(Common): 전역 변수 사용.
- 스탬프(Stamp): 배열/객체 전달.
- 자료(Data): 단순 파라미터 전달 (최고).
배치 스케줄러
- Spring Batch, Quartz.
- Cron 표현식: 초 / 분 / 시 / 일 / 월 / 요일 / 연도.
9단원: 소프트웨어 보안
보안 3대 요소 (CIA)
- 기밀성 (Confidentiality): 인가된 자만 접근.
- 무결성 (Integrity): 위변조 방지.
- 가용성 (Availability): 언제든 사용 가능.
공격 기법
- 네트워크/패킷:
- Ping of Death: 거대 핑 전송.
- Teardrop: Offset 조작 (재조합 오류).
- Land Attack: 출발지 IP = 목적지 IP.
- Smurf: 브로드캐스트로 응답 폭주 유도.
- Bonk/Boink: 시퀀스 번호 조작.
- 애플리케이션/DoS:
- Slowloris: 개행 문자 미전송 (연결 유지).
- RUDY: Content-Length 크게 설정.
- Hulk DoS: URL 지속 변경.
- HTTP GET Flooding: 과도한 GET 요청.
- 기타: 스피어 피싱(타깃 메일), 타이포스쿼팅(URL 오타 악용), 트러스트존(ARM 보안 영역).
접근 통제
- DAC: 신분(ID) 기반.
- MAC: 권한/등급 기반.
- 모델:
- Bell-LaPadula (벨-라파듈라): 기밀성 (No Read Up, No Write Down).
- Biba (비바): 무결성 (No Read Down, No Write Up).
10단원: 애플리케이션 테스트
테스트 원리
- 결함 집중, 살충제 패러독스(반복하면 내성 생김), 오류-부재의 궤변(무결점≠고품질).
테스트 분류
- 정적: 실행 X (리뷰, 인스펙션, 코드 분석).
- 동적: 실행 O.
- 화이트박스 (내부 로직): 구문/결정/조건 커버리지, 기본 경로, 제어 흐름, 데이터 흐름.
- 블랙박스 (기능 명세):
- 동치 분할 (Equivalence Partitioning): 영역별 대표값.
- 경계값 분석 (Boundary Value): 경계에서 오류 다발.
- 원인-효과 그래프, 오류 예측, 페어와이즈, 상태 전이.
테스트 레벨
- 단위 → 통합 → 시스템 → 인수 (알파/베타).
- 통합 테스트:
- 상향식: 드라이버 (Driver) 필요.
- 하향식: 스텁 (Stub) 필요.
테스트 오라클
- 참(모든 입력 확인), 샘플링(일부만), 휴리스틱(샘플링+직관), 일관성(변경 전후 비교).
11단원: 운영체제 및 네트워크
프로세스 관리
- 상태: 생성 → 준비(Ready) → 실행(Running) → 대기(Blocked) → 종료.
- 스케줄링:
- 선점 (Preemptive): RR(Round Robin), SRT, 다단계 큐.
- 비선점 (Non-preemptive): FCFS, SJF(짧은 것 우선), HRN.
- HRN 우선순위: (대기 + 서비스) / 서비스. (값이 클수록 우선)
메모리 관리
- 배치 기법: 최초(First), 최적(Best), 최악(Worst) 적합.
- 교체 기법: FIFO, LRU(시간), LFU(빈도), OPT(미래 예측-불가능), NUR(참조 비트), SCR(2차 기회).
디스크 스케줄링
- FCFS, SSTF(가장 가까운 트랙), SCAN(엘리베이터), C-SCAN(한쪽 방향만), LOOK/C-LOOK.
네트워크 및 인프라
- 프로토콜 3요소: 구문, 의미, 타이밍.
- 라우팅:
- IGP (내부): RIP(Distance Vector), OSPF(Link State, 다익스트라).
- EGP (외부): BGP.
- 스토리지: DAS(직접), NAS(네트워크), SAN(광채널).
- RAID:
- RAID 0: 스트라이핑 (빠름, 복구불가).
- RAID 1: 미러링 (복제).
- RAID 5: 패리티 (분산 저장).
- RAID 6: 이중 패리티.
12단원: 제품 소프트웨어 패키징 (릴리즈 & DRM)
DRM (Digital Rights Management)
- 구성요소: 콘텐츠 제공자, 소비자, 분배자, 클리어링 하우스(권한/라이선스 발급 및 정산).
- 기술: 암호화(PKI), 키 관리, 식별(DOI, URI), 저작권 표현(XrML), 워터마킹, 크랙 방지(난독화).
백업 (Backup)
- 차등 백업 (Differential): 전체 백업 이후 변경된 모든 것. (점점 커짐)
- 증분 백업 (Incremental): 변경된 것만 백업. (복구 시 시간 소요)